#if defined(_MSC_VER)
#pragma once
#endif

#ifndef LM_SAMPLER_STRATIFIED_H
#define LM_SAMPLER_STRATIFIED_H

#include "../core/sampler.h"

class StratifiedSampelr : public Sampler {
public:
	StratifiedSampelr(int xstart, int xend, int ystart, int yend, int xs, int ys, bool lns, bool ts, bool jitter = true);
	~StratifiedSampelr();
	int GetMoreSamples(Sample *sample);
	int MaximumSampleCount() { return xPixelSamples * yPixelSamples;}
	int RoundSize(int size) const { return size; }
	Sampler *GetSubSampler(int num, int count);
private:
	int xPixelSamples, yPixelSamples;
	int xPos, yPos;
	bool jitterSamples;
	Point2 *imageSamples;
	Point2 *lensSamples;
	float *timeSamples;
	RNG *rng;
};

#endif	// LM_SAMPLER_STRATIFIED_H